package com.sgj.gulimall.product.vo;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Author: Guoji Shen
 * @Date: 2021/7/2 13:40
 */
@Data
public class SpuSaveVo {
    /**
     * 商品名称
     */
    private String spuName;
    /**
     * 商品描述
     */
    private String spuDescription;
    /**
     * 所属分类id
     */
    private Long catalogId;
    /**
     * 品牌id
     */
    private Long brandId;
    /**
     * 重量
     */
    private BigDecimal weight;
    /**
     * 上架状态[0 - 下架，1 - 上架]
     */
    private Integer publishStatus;
    /**
     * 商品介绍
     */
    private List<String> decript;
    /**
     * 图片地址url
     */
    private List<String> images;
    /**
     * 积分设置
     */
    private Bounds bounds;
    /**
     * 基本参数
     */
    private List<BaseAttrs> baseAttrs;
    /**
     * sku信息
     */
    private List<Skus> skus;

    @Data
    public static class Skus {
        /**
         * 销售属性
         */
        private List<Attr> attr;
        /**
         * sku名称
         */
        private String skuName;
        /**
         * 价格
         */
        private BigDecimal price;
        /**
         * 标题
         */
        private String skuTitle;
        /**
         * 副标题
         */
        private String skuSubtitle;
        /**
         * 图片设置
         */
        private List<Images> images;
        /**
         * 笛卡尔积
         */
        private List<String> descar;
        /**
         * 满足商品件数折扣
         */
        private Integer fullCount;
        /**
         * 折扣
         */
        private BigDecimal discount;
        /**
         * 是否可叠加折扣优惠
         */
        private Integer countStatus;
        /**
         * 满减要求到达价格(例如满1000-50，此值为1000)
         */
        private BigDecimal fullPrice;
        /**
         * 满减的价格(例如满1000-50，此值为50)
         */
        private BigDecimal reducePrice;
        /**
         * 是否可叠加满减优惠
         */
        private Integer priceStatus;
        /**
         * 会员价格
         */
        private List<MemberPrice> memberPrice;
    }

    @Data
    public static class Bounds {
        /**
         * 金币
         */
        private BigDecimal buyBounds;
        /**
         * 成长值
         */
        private BigDecimal growBounds;
    }

    @Data
    public static class BaseAttrs {
        /**
         * 属性id
         */
        private Long attrId;
        /**
         * 型号值
         */
        private String attrValues;
        /**
         * 是否快速展示
         */
        private Integer showDesc;
    }

    @Data
    public static class Attr {
        /**
         * 销售属性id
         */
        private Long attrId;
        /**
         * 销售属性名
         */
        private String attrName;
        /**
         * 销售属性值
         */
        private String attrValue;
    }

    @Data
    public static class Images {
        /**
         * 图片url
         */
        private String imgUrl;
        /**
         * 默认图[0 - 不是默认图，1 - 是默认图]
         */
        private Integer defaultImg;
    }

    @Data
    public static class MemberPrice {
        /**
         * 会员id
         */
        private Long id;
        /**
         * 会员名称
         */
        private String name;
        /**
         * 会员价格
         */
        private BigDecimal price;
    }
}